using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Attributes.DomainAttributes;
using Baci.Net.ToolKit.ArcGISProGeoprocessor.Models.Enums;
using System.Collections.Generic;
using System.ComponentModel;

namespace Baci.ArcGIS._ConversionTools._ToGeodatabase
{
    /// <summary>
    /// <para>Extract Locations From Document</para>
    /// <para>Analyzes documents containing unstructured or semistructured text, such as email messages, travel forms, and so on, and extracts locations to a point feature class.</para>
    /// <para>分析包含非结构化或半结构化文本（如电子邮件、旅行表单等）的文档，并将位置提取到点要素类。</para>
    /// </summary>    
    [DisplayName("Extract Locations From Document")]
    public class ExtractLocationsDocument : AbstractGPProcess
    {
        /// <summary>
        /// 无参构造
        /// </summary>
        public ExtractLocationsDocument()
        {

        }

        /// <summary>
        /// 有参构造
        /// </summary>
        /// <param name="_in_file">
        /// <para>Input File</para>
        /// <para>The input file that will be scanned for locations (coordinates or custom locations), dates, and custom attributes; or a folder in which all files in the folder will be scanned for locations.</para>
        /// <para>将扫描位置（坐标或自定义位置）、日期和自定义属性的输入文件;或一个文件夹，其中将扫描文件夹中的所有文件的位置。</para>
        /// </param>
        /// <param name="_out_feature_class">
        /// <para>Output Feature Class</para>
        /// <para>The feature class containing point features that represent the locations that were found.</para>
        /// <para>包含表示所找到位置的点要素的要素类。</para>
        /// </param>
        public ExtractLocationsDocument(object _in_file, object _out_feature_class)
        {
            this._in_file = _in_file;
            this._out_feature_class = _out_feature_class;
        }
        public override string ToolboxName => "Conversion Tools";

        public override string ToolName => "Extract Locations From Document";

        public override string CallName => "conversion.ExtractLocationsDocument";

        public override List<string> AcceptEnvironments => ["geographicTransformations", "outputCoordinateSystem", "workspace"];

        public override object[] ParameterInfo => [_in_file, _out_feature_class, _in_template, _coord_dd_latlon.GetGPValue(), _coord_dd_xydeg.GetGPValue(), _coord_dd_xyplain.GetGPValue(), _coord_dm_latlon.GetGPValue(), _coord_dm_xymin.GetGPValue(), _coord_dms_latlon.GetGPValue(), _coord_dms_xysec.GetGPValue(), _coord_dms_xysep.GetGPValue(), _coord_utm.GetGPValue(), _coord_ups_north.GetGPValue(), _coord_ups_south.GetGPValue(), _coord_mgrs.GetGPValue(), _coord_mgrs_northpolar.GetGPValue(), _coord_mgrs_southpolar.GetGPValue(), _comma_decimal.GetGPValue(), _coord_use_lonlat.GetGPValue(), _in_coor_system, _in_custom_locations, _fuzzy_match.GetGPValue(), _max_features_extracted, _ignore_first_features, _date_monthname.GetGPValue(), _date_m_d_y.GetGPValue(), _date_yyyymmdd.GetGPValue(), _date_yymmdd.GetGPValue(), _date_yyjjj.GetGPValue(), _max_dates_extracted, _ignore_first_dates, _date_range_begin, _date_range_end, _in_custom_attributes, _file_link, _file_mod_datetime, _pre_text_length, _post_text_length, _std_coord_fmt.GetGPValue(), _req_word_breaks.GetGPValue()];

        /// <summary>
        /// <para>Input File</para>
        /// <para>The input file that will be scanned for locations (coordinates or custom locations), dates, and custom attributes; or a folder in which all files in the folder will be scanned for locations.</para>
        /// <para>将扫描位置（坐标或自定义位置）、日期和自定义属性的输入文件;或一个文件夹，其中将扫描文件夹中的所有文件的位置。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input File")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _in_file { get; set; }


        /// <summary>
        /// <para>Output Feature Class</para>
        /// <para>The feature class containing point features that represent the locations that were found.</para>
        /// <para>包含表示所找到位置的点要素的要素类。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Output Feature Class")]
        [Description("")]
        [Option(OptionTypeEnum.Must)]
        public object _out_feature_class { get; set; }


        /// <summary>
        /// <para>Input Template</para>
        /// <para><xdoc>
        ///   <para>The template file (*.lxttmpl) that determines the setting to use for each tool parameter. When a template file is provided, all values specified for other parameters will be ignored except those that determine the input content that will be processed and the output feature class.</para>
        ///   <para>Some settings that are available in the Extract Locations pane are only available to this tool when the settings are saved to a template file, and the template file is referenced in this parameter. These settings are as follows:
        ///   <bulletList>
        ///     <bullet_item>Spatial coordinates in x,y format—Allows two sequential numbers such as 630084 4833438 or 981075.652ftUS 607151.272ftUS to be recognized as coordinates when they are valid for a planar coordinate system associated with the input documents. You can specify whether numbers with and without units are recognized or only numbers with units of measure are recognized as coordinates.  </bullet_item><para/>
        ///     <bullet_item>Custom coordinate and date formats—Allows you to customize how text is recognized as a spatial coordinate or a date, particularly when written in a language other than English or using a format that is not common in the United States. For example, a spatial coordinate written as 30 20 10 N x 060 50 40 W can be recognized with a customization to recognize the character x as valid text between the latitude and longitude. Coordinates and dates such as 60.91°N, 147.34°O and 17 juillet, 2018 can be recognized when customizations are specified to accommodate the language of the documents, in this case French. Also, when two-digit years are used, you can control the range of years to which they are matched.  </bullet_item><para/>
        ///     <bullet_item>Preferences for some ambiguous dates—Dates such as 10/12/2019 are ambiguous because they can be interpreted as either October 12, 2019, or December 10, 2019. Some countries use the m/d/yy date format as a standard, and other countries use the d/m/yy format. A preference can be set for how these ambiguous dates are interpreted, either as m/d/yy or d/m/yy, to suit the country of origin of the documents.  </bullet_item><para/>
        ///     <bullet_item>Length of fields in the output feature class—You can specify the length of the fields containing text surrounding spatial coordinates that are extracted from a document using the Pre-Text Field Length (pre_text_length in Python) and Post-Text Field Length (post_text_length in Python) parameters. The Extract Locations pane allows you to control the length of several additional fields in the attribute table, including fields containing dates extracted from the document, the original text that was converted to dates, the file name from which the information was extracted, and so on.  </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>模板文件 （*.lxttmpl），用于确定要用于每个工具参数的设置。提供模板文件时，将忽略为其他参数指定的所有值，但确定要处理的输入内容和输出要素类的值除外。</para>
        /// “<para>提取位置”窗格中可用的某些设置仅在将设置保存到模板文件并且此参数中引用模板文件时才可用于此工具。这些设置如下：
        ///   <bulletList>
        ///     <bullet_item>x，y 格式的空间坐标 - 允许将两个序列号（如 630084 4833438 或 981075.652ftUS 607151.272ftUS 等两个序列号识别为坐标，当它们对与输入文档关联的平面坐标系有效时。您可以指定是识别带单位和不带单位的数字，还是仅识别具有度量单位的数字作为坐标。 </bullet_item><para/>
        ///     <bullet_item>自定义坐标和日期格式 - 允许您自定义如何将文本识别为空间坐标或日期，尤其是在以英语以外的语言书写或使用在美国不常见的格式书写时。例如，写为 30 20 10 N x 060 50 40 W 的空间坐标可以通过自定义识别，以将字符 x 识别为纬度和经度之间的有效文本。当指定自定义项以适应文档的语言（在本例中为法语）时，可以识别坐标和日期，例如 60.91°N、147.34°O 和 17 juillet， 2018。此外，当使用两位数的年份时，您可以控制它们匹配的年份范围。 </bullet_item><para/>
        ///     <bullet_item>某些不明确日期的首选项 - 2019 年 10 月 12 日等日期不明确，因为它们可以解释为 2019 年 10 月 12 日或 2019 年 12 月 10 日。一些国家/地区使用 m/d/yy 日期格式作为标准，而其他国家/地区使用 d/m/yy 格式。可以设置如何将这些模棱两可的日期解释为m/d/yy或d/m/yy，以适应文件的原产国。 </bullet_item><para/>
        ///     <bullet_item>输出要素类中的字段长度 - 您可以使用文本前字段长度（Python 中为 pre_text_length）和文本后字段长度（Python 中为 post_text_length）参数指定包含从文档中提取的空间坐标周围文本的字段的长度。提取位置窗格允许您控制属性表中多个附加字段的长度，包括包含从文档中提取的日期的字段、转换为日期的原始文本、从中提取信息的文件名等。 </bullet_item><para/>
        ///   </bulletList>
        ///   </para>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Template")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _in_template { get; set; } = null;


        /// <summary>
        /// <para>Latitude And Longitude</para>
        /// <para><xdoc>
        ///   <para>Specifies whether to search for coordinates stored as decimal degrees formatted as latitude and longitude (infrequent false positives). Examples are: 33.8N 77.035W and W77N38.88909.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The tool will search for decimal degrees coordinates formatted as latitude and longitude. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The tool will not search for decimal degrees coordinates formatted as latitude and longitude.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否搜索存储为十进制度的坐标，其格式为纬度和经度（不常见的误报）。例如：33.8N 77.035W 和 W77N38.88909。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 该工具将搜索格式为纬度和经度的十进制度坐标。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 该工具不会搜索格式为纬度和经度的十进制度坐标。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Latitude And Longitude")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _coord_dd_latlon_value _coord_dd_latlon { get; set; } = _coord_dd_latlon_value._true;

        public enum _coord_dd_latlon_value
        {
            /// <summary>
            /// <para>FIND_DD_LATLON</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("FIND_DD_LATLON")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>DONT_FIND_DD_LATLON</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DONT_FIND_DD_LATLON")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>X Y With Degree Symbols</para>
        /// <para><xdoc>
        ///   <para>Specifies whether to search for coordinates stored as decimal degrees formatted as X Y with degree symbols (infrequent false positives). Examples are: 38.8° -77.035° and -077d+38.88909d.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The tool will search for decimal degrees coordinates formatted as X Y with degree symbols. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The tool will not search for decimal degrees coordinates formatted as X Y with degree symbols.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否搜索存储为十进制度的坐标，这些坐标的格式为 X、Y、带有度数符号（不常见的误报）。例如：38.8° -77.035° 和 -077d+38.88909d。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 该工具将搜索格式为 X Y 且带有度数符号的十进制度坐标。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 工具将不搜索格式为 X Y 且带有度数符号的十进制度坐标。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("X Y With Degree Symbols")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _coord_dd_xydeg_value _coord_dd_xydeg { get; set; } = _coord_dd_xydeg_value._true;

        public enum _coord_dd_xydeg_value
        {
            /// <summary>
            /// <para>FIND_DD_XYDEG</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("FIND_DD_XYDEG")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>DONT_FIND_DD_XYDEG</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DONT_FIND_DD_XYDEG")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>X Y With No Symbols</para>
        /// <para><xdoc>
        ///   <para>Specifies whether to search for coordinates stored as decimal degrees formatted as X Y with no symbols (frequent false positives). Examples are: 38.8 -77.035 and -077.0, +38.88909.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The tool will search for decimal degrees coordinates formatted as X Y with no symbols (frequent false positives). This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The tool will not search for decimal degrees coordinates formatted as X Y with no symbols.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否搜索存储为十进制度的坐标，格式为 X Y，不带符号（频繁误报）。例如：38.8 -77.035 和 -077.0、+38.88909。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 工具将搜索格式为 X Y 且不带符号的十进制度坐标（经常出现误报）。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 该工具将不搜索格式为 X Y 且不带符号的十进制度坐标。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("X Y With No Symbols")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _coord_dd_xyplain_value _coord_dd_xyplain { get; set; } = _coord_dd_xyplain_value._true;

        public enum _coord_dd_xyplain_value
        {
            /// <summary>
            /// <para>FIND_DD_XYPLAIN</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("FIND_DD_XYPLAIN")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>DONT_FIND_DD_XYPLAIN</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DONT_FIND_DD_XYPLAIN")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Latitude And Longitude</para>
        /// <para><xdoc>
        ///   <para>Specifies whether to search for coordinates stored as degrees decimal minutes formatted as latitude and longitude (infrequent false positives). Examples are: 3853.3N 7702.100W and W7702N3853.3458.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The tool will search for degrees decimal minutes coordinates formatted as latitude and longitude. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The tool will not search for degrees decimal minutes coordinates formatted as latitude and longitude.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否搜索以度数、十进制分钟数（格式为纬度和经度）存储的坐标（不常见的误报）。例如：3853.3N 7702.100W 和 W7702N3853.3458。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 该工具将搜索格式为纬度和经度的度、十进制分钟坐标。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 该工具将不搜索格式为纬度和经度的度、十进制分钟坐标。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Latitude And Longitude")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _coord_dm_latlon_value _coord_dm_latlon { get; set; } = _coord_dm_latlon_value._true;

        public enum _coord_dm_latlon_value
        {
            /// <summary>
            /// <para>FIND_DM_LATLON</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("FIND_DM_LATLON")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>DONT_FIND_DM_LATLON</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DONT_FIND_DM_LATLON")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>X Y With Minutes Symbols</para>
        /// <para><xdoc>
        ///   <para>Specifies whether to search for coordinates stored as degrees decimal minutes formatted as X Y with minutes symbols (infrequent false positives). Examples are: 3853' -7702.1' and -07702m+3853.3458m.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The tool will search for degrees decimal minutes coordinates formatted as X Y with minutes symbols. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The tool will not search for degrees decimal minutes coordinates formatted as X Y with minutes symbols.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否搜索以度、十进制分钟（格式为 X Y）和分钟符号（不常见的误报）存储的坐标。例如：3853' -7702.1' 和 -07702m+3853.3458m。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 该工具将搜索格式为 X Y（带分钟符号）的度、十进制分钟坐标。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 该工具不会搜索格式为 X Y（带分钟符号）的度、十进制分钟坐标。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("X Y With Minutes Symbols")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _coord_dm_xymin_value _coord_dm_xymin { get; set; } = _coord_dm_xymin_value._true;

        public enum _coord_dm_xymin_value
        {
            /// <summary>
            /// <para>FIND_DM_XYMIN</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("FIND_DM_XYMIN")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>DONT_FIND_DM_XYMIN</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DONT_FIND_DM_XYMIN")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Latitude And Longitude</para>
        /// <para><xdoc>
        ///   <para>Specifies whether to search for coordinates stored as degrees minutes seconds formatted as latitude and longitude (infrequent false positives). Examples are: 385320.7N 770206.000W and W770206N385320.76.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The tool will search for degrees minutes seconds coordinates formatted as latitude and longitude. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The tool will not search for degrees minutes seconds coordinates formatted as latitude and longitude.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否搜索存储为度、分、秒、格式为纬度和经度的坐标（不常见的误报）。例如：385320.7N 770206.000W 和 W770206N385320.76。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 该工具将搜索格式为纬度和经度的度、分、秒坐标。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 该工具不会搜索格式为纬度和经度的度、分、秒坐标。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Latitude And Longitude")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _coord_dms_latlon_value _coord_dms_latlon { get; set; } = _coord_dms_latlon_value._true;

        public enum _coord_dms_latlon_value
        {
            /// <summary>
            /// <para>FIND_DMS_LATLON</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("FIND_DMS_LATLON")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>DONT_FIND_DMS_LATLON</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DONT_FIND_DMS_LATLON")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>X Y With Seconds Symbols</para>
        /// <para><xdoc>
        ///   <para>Specifies whether to search for coordinates stored as degrees minutes seconds formatted as X Y with seconds symbols (infrequent false positives). Examples are: 385320" -770206.0" and -0770206.0s+385320.76s.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The tool will search for degrees minutes seconds coordinates formatted as X Y with seconds symbols. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The tool will not search for degrees minutes seconds coordinates formatted as X Y with seconds symbols.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否搜索存储为度、分、秒（格式为 X、Y、带秒符号的 Y）的坐标（不常见的误报）。例如：385320“ -770206.0” 和 -0770206.0s+385320.76s。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 该工具将搜索格式为 X、Y（带秒符号）的度、分、秒坐标。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 该工具将不搜索格式为 X、Y（带秒符号）的度、分、秒坐标。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("X Y With Seconds Symbols")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _coord_dms_xysec_value _coord_dms_xysec { get; set; } = _coord_dms_xysec_value._true;

        public enum _coord_dms_xysec_value
        {
            /// <summary>
            /// <para>FIND_DMS_XYSEC</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("FIND_DMS_XYSEC")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>DONT_FIND_DMS_XYSEC</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DONT_FIND_DMS_XYSEC")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>X Y With Separators</para>
        /// <para><xdoc>
        ///   <para>Specifies whether to search for coordinates stored as degrees minutes seconds formatted as X Y with separators (moderate false positives). Examples are: 38:53:20 -77:2:6.0 and -077/02/06/+38/53/20.76.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The tool will search for degrees minutes seconds coordinates formatted as X Y with separators. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The tool will not search for degrees minutes seconds coordinates formatted as X Y with separators.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否搜索存储为度、分、秒（格式为 X、Y、带分隔符）的坐标（中度误报）。例如：38：53：20 -77：2：6.0 和 -077/02/06/+38/53/20.76。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 该工具将搜索格式为 X、Y 的度、分、秒坐标和分隔符。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 该工具不会搜索格式为 X、Y（带分隔符）的度、分、秒坐标。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("X Y With Separators")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _coord_dms_xysep_value _coord_dms_xysep { get; set; } = _coord_dms_xysep_value._true;

        public enum _coord_dms_xysep_value
        {
            /// <summary>
            /// <para>FIND_DMS_XYSEP</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("FIND_DMS_XYSEP")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>DONT_FIND_DMS_XYSEP</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DONT_FIND_DMS_XYSEP")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Universal Transverse Mercator</para>
        /// <para><xdoc>
        ///   <para>Specifies whether to search for Universal Transverse Mercator (UTM) coordinates (infrequent false positives). Examples are: 18S 323503 4306438 and 18 north 323503.25 4306438.39.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The tool will search for UTM coordinates. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The tool will not search for UTM coordinates.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否搜索通用横轴墨卡托 （UTM） 坐标（不常见的误报）。例如：18S 323503 4306438 和 18 North 323503.25 4306438.39。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 工具将搜索 UTM 坐标。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 工具将不搜索 UTM 坐标。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Universal Transverse Mercator")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _coord_utm_value _coord_utm { get; set; } = _coord_utm_value._true;

        public enum _coord_utm_value
        {
            /// <summary>
            /// <para>FIND_UTM_MAINWORLD</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("FIND_UTM_MAINWORLD")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>DONT_FIND_UTM_MAINWORLD</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DONT_FIND_UTM_MAINWORLD")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>UPS North Polar</para>
        /// <para><xdoc>
        ///   <para>Specifies whether to search for Universal Polar Stereographic (UPS) coordinates in the north polar area (infrequent false positives). Examples are: Y 2722399 2000000 and north 2722399 2000000.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The tool will search for UPS coordinates in the north polar area. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The tool will not search for UPS coordinates in the north polar area.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否在北极区域搜索通用极坐标立体 （UPS） 坐标（不常见的误报）。例如：Y 2722399 2000000 和北2722399 2000000。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 该工具将搜索北极区域中的 UPS 坐标。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 该工具不会在北极区域搜索 UPS 坐标。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("UPS North Polar")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _coord_ups_north_value _coord_ups_north { get; set; } = _coord_ups_north_value._false;

        public enum _coord_ups_north_value
        {
            /// <summary>
            /// <para>FIND_UTM_NORTHPOLAR</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("FIND_UTM_NORTHPOLAR")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>DONT_FIND_UTM_NORTHPOLAR</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DONT_FIND_UTM_NORTHPOLAR")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>UPS South Polar</para>
        /// <para><xdoc>
        ///   <para>Specifies whether to search for Universal Polar Stereographic (UPS) coordinates in the south polar area (infrequent false positives). Examples are: A 2000000 3168892 and south 2000000 3168892.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The tool will search for UPS coordinates in the south polar area. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The tool will not search for UPS coordinates in the south polar area.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否在南极区域搜索通用极坐标立体 （UPS） 坐标（不常见的误报）。例如：A 2000000 3168892和南部 2000000 3168892。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 该工具将搜索南极区域的 UPS 坐标。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 该工具不会在南极区域搜索 UPS 坐标。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("UPS South Polar")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _coord_ups_south_value _coord_ups_south { get; set; } = _coord_ups_south_value._false;

        public enum _coord_ups_south_value
        {
            /// <summary>
            /// <para>FIND_UTM_SOUTHPOLAR</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("FIND_UTM_SOUTHPOLAR")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>DONT_FIND_UTM_SOUTHPOLAR</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DONT_FIND_UTM_SOUTHPOLAR")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Military Grid Reference System</para>
        /// <para><xdoc>
        ///   <para>Specifies whether to search for Military Grid Reference System (MGRS) coordinates (infrequent false positives). Examples are: 18S UJ 13503 06438 and 18SUJ0306.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The tool will search for MGRS coordinates. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The tool will not search for MGRS coordinates.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否搜索军事格网参考系 （MGRS） 坐标（不常见的误报）。例如：18S UJ 13503 06438 和 18SUJ0306。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 工具将搜索 MGRS 坐标。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 该工具将不搜索 MGRS 坐标。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Military Grid Reference System")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _coord_mgrs_value _coord_mgrs { get; set; } = _coord_mgrs_value._true;

        public enum _coord_mgrs_value
        {
            /// <summary>
            /// <para>FIND_MGRS_MAINWORLD</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("FIND_MGRS_MAINWORLD")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>DONT_FIND_MGRS_MAINWORLD</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DONT_FIND_MGRS_MAINWORLD")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>North Polar</para>
        /// <para><xdoc>
        ///   <para>Specifies whether to search for Military Grid Reference System (MGRS) coordinates in the north polar area (infrequent false positives). Examples are: Y TG 56814 69009 and YTG5669.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The tool will search for MGRS coordinates in the north polar area. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The tool will not search for MGRS coordinates in the north polar area.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否在北极区域搜索军事格网参考系 （MGRS） 坐标（不常见的误报）。例如：Y TG 56814 69009 和 YTG5669。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 该工具将搜索北极区域中的 MGRS 坐标。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 该工具将不搜索北极区域中的 MGRS 坐标。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("North Polar")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _coord_mgrs_northpolar_value _coord_mgrs_northpolar { get; set; } = _coord_mgrs_northpolar_value._false;

        public enum _coord_mgrs_northpolar_value
        {
            /// <summary>
            /// <para>FIND_MGRS_NORTHPOLAR</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("FIND_MGRS_NORTHPOLAR")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>DONT_FIND_MGRS_NORTHPOLAR</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DONT_FIND_MGRS_NORTHPOLAR")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>South Polar</para>
        /// <para><xdoc>
        ///   <para>Specifies whether to search for Military Grid Reference System (MGRS) coordinates in the south polar area (moderate false positives). Examples are: A TN 56814 30991 and ATN5630.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The tool will search for MGRS coordinates in the south polar area. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The tool will not search for MGRS coordinates in the south polar area.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否在南极区域搜索军事格网参考系 （MGRS） 坐标（中度误报）。例如：TN 56814 30991 和 ATN5630。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 该工具将搜索南极区域的 MGRS 坐标。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 该工具不会搜索南极区域的 MGRS 坐标。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("South Polar")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _coord_mgrs_southpolar_value _coord_mgrs_southpolar { get; set; } = _coord_mgrs_southpolar_value._false;

        public enum _coord_mgrs_southpolar_value
        {
            /// <summary>
            /// <para>FIND_MGRS_SOUTHPOLAR</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("FIND_MGRS_SOUTHPOLAR")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>DONT_FIND_MGRS_SOUTHPOLAR</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DONT_FIND_MGRS_SOUTHPOLAR")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Use Comma As Decimal Separator</para>
        /// <para><xdoc>
        ///   <para>Specifies whether a comma (,) will be recognized as a decimal separator. By default, content is scanned for spatial coordinates defined by numbers that use a period (.) or a middle dot (·) as the decimal separator, for example: Lat 01° 10·80’ N Long 103° 28·60’ E. If you are working with content in which spatial coordinates are defined by numbers that use a comma (,) as the decimal separator, for example: 52° 8′ 32,14″ N; 5° 24′ 56,09″ E, set this parameter to recognize a comma as the decimal separator instead. This parameter is not set automatically based on the regional setting for your computer's operating system.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—A comma will be recognized as the decimal separator.</bullet_item><para/>
        ///     <bullet_item>Unchecked—A period or a middle dot will be recognized as the decimal separator. This is the default.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否将逗号 （，） 识别为小数分隔符。默认情况下，将扫描内容以查找由使用句点 （.） 或中间点 （·） 作为小数分隔符的数字定义的空间坐标，例如：纬度 01° 10·80' N 长 103° 28·60' E。如果正在处理空间坐标由使用逗号 （，） 作为小数分隔符的数字定义的内容，例如：52° 8′ 32,14“ N;5° 24′ 56,09“ E，将此参数设置为识别逗号作为小数分隔符。此参数不会根据计算机操作系统的区域设置自动设置。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 逗号将被识别为小数点分隔符。</bullet_item><para/>
        ///     <bullet_item>未选中 - 句点或中间点将被识别为小数点分隔符。这是默认设置。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Use Comma As Decimal Separator")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _comma_decimal_value _comma_decimal { get; set; } = _comma_decimal_value._false;

        public enum _comma_decimal_value
        {
            /// <summary>
            /// <para>USE_COMMA_DECIMAL_MARK</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("USE_COMMA_DECIMAL_MARK")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>USE_DOT_DECIMAL_MARK</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("USE_DOT_DECIMAL_MARK")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Interpret As Longitude, Latitude</para>
        /// <para><xdoc>
        ///   <para>Specifies whether x,y coordinates will be interpreted as longitude-latitude. When numbers resemble x,y coordinates, both numbers are less than 90, and there are no symbols or notations to indicate which number represents the latitude or longitude, results can be ambiguous. Interpret the numbers as a longitude-latitude coordinate (x,y) instead of a latitude-longitude coordinate (y,x).</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—x,y coordinates will be interpreted as longitude-latitude.</bullet_item><para/>
        ///     <bullet_item>Unchecked—x,y coordinates will be interpreted as latitude-longitude. This is the default.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否将 x，y 坐标解释为经纬度。当数字类似于 x，y 坐标时，两个数字都小于 90，并且没有符号或符号来指示哪个数字代表纬度或经度，结果可能不明确。将数字解释为经纬度坐标 （x，y） 而不是经纬度坐标 （y，x）。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - x，y 坐标将被解释为经纬度。</bullet_item><para/>
        ///     <bullet_item>未选中 - x，y 坐标将被解释为经纬度。这是默认设置。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Interpret As Longitude, Latitude")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _coord_use_lonlat_value _coord_use_lonlat { get; set; } = _coord_use_lonlat_value._false;

        public enum _coord_use_lonlat_value
        {
            /// <summary>
            /// <para>PREFER_LONLAT</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("PREFER_LONLAT")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>PREFER_LATLON</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("PREFER_LATLON")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Input Coordinate System</para>
        /// <para>The coordinate system that will be used to interpret the spatial coordinates defined in the input. GCS-WGS-84 is the default.</para>
        /// <para>将用于解释输入中定义的空间坐标的坐标系。GCS-WGS-84 是默认值。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Coordinate System")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _in_coor_system { get; set; } = null;


        /// <summary>
        /// <para>Input Custom Locations</para>
        /// <para>The custom location file (.lxtgaz) that will be used when scanning the input content. A point is created to represent each occurrence of each place name in the custom location file up to the limits established by other tool parameters.</para>
        /// <para>扫描输入内容时将使用的自定义位置文件 （.lxtgaz）。将创建一个点来表示自定义位置文件中每个地名的每次出现，直至达到其他工具参数建立的限制。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Custom Locations")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _in_custom_locations { get; set; } = null;


        /// <summary>
        /// <para>Use Fuzzy Matching</para>
        /// <para><xdoc>
        ///   <para>Specifies whether fuzzy matching will be used when comparing the input content to the place names specified in the custom location file.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—Fuzzy matching will be used when searching the custom location file.</bullet_item><para/>
        ///     <bullet_item>Unchecked—Exact matching will be used when searching the custom location file. This is the default.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定在将输入内容与自定义位置文件中指定的地名进行比较时是否使用模糊匹配。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 搜索自定义位置文件时将使用模糊匹配。</bullet_item><para/>
        ///     <bullet_item>未选中—搜索自定义位置文件时将使用精确匹配。这是默认设置。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Use Fuzzy Matching")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _fuzzy_match_value _fuzzy_match { get; set; } = _fuzzy_match_value._false;

        public enum _fuzzy_match_value
        {
            /// <summary>
            /// <para>USE_FUZZY</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("USE_FUZZY")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>DONT_USE_FUZZY</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DONT_USE_FUZZY")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Maximum Number Of Extracted Features</para>
        /// <para>The maximum number of features that can be extracted. The tool will stop scanning the input content for locations when the maximum number is reached. When running as a geoprocessing service, the service and the server may have separate limits on the number of features allowed.</para>
        /// <para>可提取的最大要素数。当达到最大数量时，该工具将停止扫描输入内容以查找位置。作为地理处理服务运行时，服务和服务器可能对允许的要素数量有单独的限制。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Maximum Number Of Extracted Features")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public long? _max_features_extracted { get; set; } = null;


        /// <summary>
        /// <para>Ignore This First Number of Features</para>
        /// <para>The number of features detected and ignored before extracting all other features. This parameter can be used to focus the search on a specific portion of the data.</para>
        /// <para>在提取所有其他特征之前检测到并忽略的特征数。此参数可用于将搜索重点放在数据的特定部分。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Ignore This First Number of Features")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public long? _ignore_first_features { get; set; } = null;


        /// <summary>
        /// <para>Month Name Used</para>
        /// <para><xdoc>
        ///   <para>Specifies whether to search for dates in which the month name appears (infrequent false positives). 12 May 2003 and January 15, 1997 are examples.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The tool will search for dates in which the month name appears. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The tool will not search for dates in which the month name appears.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否搜索出现月份名称的日期（不常见的误报）。2003年5月12日和1997年1月15日就是例子。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 该工具将搜索显示月份名称的日期。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 该工具将不搜索显示月份名称的日期。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Month Name Used")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _date_monthname_value _date_monthname { get; set; } = _date_monthname_value._true;

        public enum _date_monthname_value
        {
            /// <summary>
            /// <para>FIND_DATE_MONTHNAME</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("FIND_DATE_MONTHNAME")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>DONT_FIND_DATE_MONTHNAME</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DONT_FIND_DATE_MONTHNAME")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>M/D/Y and D/M/Y</para>
        /// <para><xdoc>
        ///   <para>Specifies whether to search for dates in which numbers are in the M/D/Y or D/M/Y format (moderate false positives). 5/12/03 and 1-15-1997 are examples.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The tool will search for dates in which numbers are in the M/D/Y or D/M/Y format (moderate false positives). This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The tool will not search for dates in which numbers are in the M/D/Y or D/M/Y format.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否搜索数字为 M/D/Y 或 D/M/Y 格式的日期（中度误报）。5/12/03 和 1-15-1997 就是例子。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 该工具将搜索数字为 M/D/Y 或 D/M/Y 格式的日期（中度误报）。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 该工具将不搜索数字为 M/D/Y 或 D/M/Y 格式的日期。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("M/D/Y and D/M/Y")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _date_m_d_y_value _date_m_d_y { get; set; } = _date_m_d_y_value._true;

        public enum _date_m_d_y_value
        {
            /// <summary>
            /// <para>FIND_DATE_M_D_Y</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("FIND_DATE_M_D_Y")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>DONT_FIND_DATE_M_D_Y</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DONT_FIND_DATE_M_D_Y")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>YYYYMMDD</para>
        /// <para><xdoc>
        ///   <para>Specifies whether to search for dates in which numbers are in the YYYYMMDD format (moderate false positives). 20030512 and 19970115 are examples.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The tool will search for dates in which numbers are in the YYYYMMDD format (moderate false positives). This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The tool will not search for dates in which numbers are in the YYYYMMDD format.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否搜索数字采用 YYYYMMDD 格式的日期（中度误报）。20030512 和 19970115 就是例子。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 该工具将搜索数字采用 YYYYMMDD 格式的日期（中度误报）。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 该工具将不搜索数字为 YYYYMMDD 格式的日期。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("YYYYMMDD")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _date_yyyymmdd_value _date_yyyymmdd { get; set; } = _date_yyyymmdd_value._true;

        public enum _date_yyyymmdd_value
        {
            /// <summary>
            /// <para>FIND_DATE_YYYYMMDD</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("FIND_DATE_YYYYMMDD")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>DONT_FIND_DATE_YYYYMMDD</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DONT_FIND_DATE_YYYYMMDD")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>YYMMDD</para>
        /// <para><xdoc>
        ///   <para>Specifies whether to search for dates in which numbers are in the YYMMDD format (frequent false positives). 030512 and 970115 are examples.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The tool will search for dates in which numbers are in the YYMMDD format (frequent false positives). This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The tool will not search for dates in which numbers are in the YYMMDD format.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否搜索数字采用 YYMMDD 格式的日期（频繁误报）。030512和970115就是例子。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 该工具将搜索数字采用 YYMMDD 格式的日期（频繁误报）。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 该工具将不搜索数字为 YYMMDD 格式的日期。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("YYMMDD")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _date_yymmdd_value _date_yymmdd { get; set; } = _date_yymmdd_value._true;

        public enum _date_yymmdd_value
        {
            /// <summary>
            /// <para>FIND_DATE_YYMMDD</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("FIND_DATE_YYMMDD")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>DONT_FIND_DATE_YYMMDD</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DONT_FIND_DATE_YYMMDD")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>YYJJJ</para>
        /// <para><xdoc>
        ///   <para>Specifies whether to search for dates in which numbers are in the YYJJJ or YYYYJJJ format (frequent false positives). 03132 and 97015 are examples.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The tool will search for dates in which numbers are in the YYJJJ or YYYYJJJ format (frequent false positives). This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The tool will not search for dates in which numbers are in the YYJJJ or YYYYJJJ format.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否搜索数字采用 YYJJJ 或 YYYYJJJ 格式的日期（频繁误报）。03132 和 97015 就是示例。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 该工具将搜索数字为 YYJJJ 或 YYYYJJJ 格式的日期（频繁误报）。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 该工具不会搜索数字为 YYJJJ 或 YYYYJJJ 格式的日期。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("YYJJJ")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _date_yyjjj_value _date_yyjjj { get; set; } = _date_yyjjj_value._true;

        public enum _date_yyjjj_value
        {
            /// <summary>
            /// <para>FIND_DATE_YYJJJ</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("FIND_DATE_YYJJJ")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>DONT_FIND_DATE_YYJJJ</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DONT_FIND_DATE_YYJJJ")]
            [GPEnumValue("false")]
            _false,

        }

        /// <summary>
        /// <para>Maximum Number Of Extracted Dates</para>
        /// <para>The maximum number of dates that will be extracted.</para>
        /// <para>将提取的最大日期数。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Maximum Number Of Extracted Dates")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public long? _max_dates_extracted { get; set; } = null;


        /// <summary>
        /// <para>Ignore This First Number Of Dates</para>
        /// <para>The number of dates that will be detected and ignored before extracting all other dates.</para>
        /// <para>在提取所有其他日期之前将检测和忽略的日期数。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Ignore This First Number Of Dates")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public long? _ignore_first_dates { get; set; } = null;


        /// <summary>
        /// <para>Earliest Date Of Acceptable Date Range</para>
        /// <para>The earliest acceptable date to extract. Detected dates matching this value or later will be extracted.</para>
        /// <para>最早可接受的提取日期。将提取与此值匹配或更晚的检测到的日期。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Earliest Date Of Acceptable Date Range")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _date_range_begin { get; set; } = null;


        /// <summary>
        /// <para>Latest Date Of Acceptable Date Range</para>
        /// <para>The latest acceptable date to extract. Detected dates matching this value or earlier will be extracted.</para>
        /// <para>要提取的最晚可接受日期。将提取与此值或更早值匹配的检测到的日期。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Latest Date Of Acceptable Date Range")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _date_range_end { get; set; } = null;


        /// <summary>
        /// <para>Input Custom Attributes</para>
        /// <para>The custom attribute file (.lxtca) that will be used to scan the input content. Fields will be created in the output feature class's attribute table for all custom attributes defined in the file. When the input content is scanned, it will be examined to see if it contains text associated with all custom attributes specified in the file. When a match is found, the appropriate text is extracted from the input content and stored in the appropriate field.</para>
        /// <para>将用于扫描输入内容的自定义属性文件 （.lxtca）。将在输出要素类的属性表中为文件中定义的所有自定义属性创建字段。扫描输入内容时，将检查它是否包含与文件中指定的所有自定义属性关联的文本。找到匹配项后，将从输入内容中提取相应的文本并存储在相应的字段中。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input Custom Attributes")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _in_custom_attributes { get; set; } = null;


        /// <summary>
        /// <para>Input File Link Text</para>
        /// <para>The file path that will be used as the file name in the output data when the Input File parameter (in_file in Python) is transferred to the server. If this parameter is not specified, the path of the Input File will be used, which may be an unreachable folder on a server. This parameter has no effect when the Input File is not specified.</para>
        /// <para>将输入文件参数（在 Python 中为 in_file）传输到服务器时将用作输出数据中的文件名的文件路径。如果未指定此参数，则将使用输入文件的路径，该路径可能是服务器上无法访问的文件夹。如果未指定输入文件，则此参数无效。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input File Link Text")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _file_link { get; set; } = null;


        /// <summary>
        /// <para>Input File Date and Time</para>
        /// <para>The UTC date and time that the file was modified will be used as the modified attribute in the output data when the Input File parameter (in_file in Python) is transferred to the server. If this parameter is not specified, the current modified time of the input file will be used. This parameter has no effect when the Input File is not specified.</para>
        /// <para>当输入文件参数（在 Python 中为 in_file）传输到服务器时，文件被修改的 UTC 日期和时间将用作输出数据中的修改属性。如果未指定此参数，则使用输入文件的当前修改时间。如果未指定输入文件，则此参数无效。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Input File Date and Time")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public object _file_mod_datetime { get; set; } = null;


        /// <summary>
        /// <para>Pre-Text Field Length</para>
        /// <para>Content is extracted from the input document to provide context for the location that was found. This parameter defines the maximum number of characters that will be extracted preceding the text that defines the location. The extracted text is stored in the Pre-Text field in the output feature class's attribute table. The default is 254. The Pre-Text field's data type will also have this length. The length of a text field in a shapefile is limited to 254 characters; when the output is a shapefile, a larger number of characters will be truncated to 254.</para>
        /// <para>从输入文档中提取内容，以提供找到的位置的上下文。此参数定义将在定义位置的文本之前提取的最大字符数。提取的文本存储在输出要素类属性表的预文本字段中。默认值为 254。Pre-Text 字段的数据类型也将具有此长度。shapefile 中文本字段的长度限制为 254 个字符;当输出是 shapefile 时，大量字符将被截断为 254。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Pre-Text Field Length")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public long _pre_text_length { get; set; } = 254;


        /// <summary>
        /// <para>Post-Text Field Length</para>
        /// <para>Content is extracted from the input document to provide context for the location that was found. This parameter defines the maximum number of characters that will be extracted following the text that defines the location. The extracted text is stored in the Post-Text field in the output feature class's attribute table. The default is 254. The Post-Text field's data type will also have this length. The length of a text field in a shapefile is limited to 254 characters; when the output is a shapefile, a larger number of characters will be truncated to 254.</para>
        /// <para>从输入文档中提取内容，以提供找到的位置的上下文。此参数定义将在定义位置的文本之后提取的最大字符数。提取的文本将存储在输出要素类属性表的 Post-Text 字段中。默认值为 254。Post-Text 字段的数据类型也将具有此长度。shapefile 中文本字段的长度限制为 254 个字符;当输出是 shapefile 时，大量字符将被截断为 254。</para>
        /// <para></para>
        /// </summary>
        [DisplayName("Post-Text Field Length")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public long _post_text_length { get; set; } = 254;


        /// <summary>
        /// <para>Coordinate Format</para>
        /// <para><xdoc>
        ///   <para>Specifies the coordinate format that will be used to store the coordinate location. A standard representation of the spatial coordinate that defines the point feature is recorded in a field in the attribute table.</para>
        ///   <bulletList>
        ///     <bullet_item>DD - Decimal Degrees—The coordinate location is recorded in decimal degrees format. This is the default.</bullet_item><para/>
        ///     <bullet_item>DM - Degrees Decimal Minutes—The coordinate location is recorded in degrees decimal minutes format.</bullet_item><para/>
        ///     <bullet_item>DMS - Degrees Minutes Seconds—The coordinate location is recorded in degrees minutes seconds format.</bullet_item><para/>
        ///     <bullet_item>UTM - Universal Transverse Mercator—The coordinate location is recorded in Universal Transverse Mercator format.</bullet_item><para/>
        ///     <bullet_item>MGRS - Military Grid Reference System—The coordinate location is recorded in Military Grid Reference System format.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定将用于存储坐标位置的坐标格式。定义点要素的空间坐标的标准制图表达将记录在属性表的字段中。</para>
        ///   <bulletList>
        ///     <bullet_item>DD - 十进制度 - 坐标位置以十进制度格式记录。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>DM - 十进制度后分 - 坐标位置以十进制度分格式记录。</bullet_item><para/>
        ///     <bullet_item>DMS - 度分秒 - 坐标位置以度分秒格式记录。</bullet_item><para/>
        ///     <bullet_item>UTM - 通用横轴墨卡托 - 坐标位置以通用横轴墨卡托格式记录。</bullet_item><para/>
        ///     <bullet_item>MGRS - 军事格网参考系 - 坐标位置以军事格网参考系格式记录。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Coordinate Format")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _std_coord_fmt_value _std_coord_fmt { get; set; } = _std_coord_fmt_value._STD_COORD_FMT_DD;

        public enum _std_coord_fmt_value
        {
            /// <summary>
            /// <para>DD - Decimal Degrees</para>
            /// <para>DD - Decimal Degrees—The coordinate location is recorded in decimal degrees format. This is the default.</para>
            /// <para>DD - 十进制度 - 坐标位置以十进制度格式记录。这是默认设置。</para>
            /// </summary>
            [Description("DD - Decimal Degrees")]
            [GPEnumValue("STD_COORD_FMT_DD")]
            _STD_COORD_FMT_DD,

            /// <summary>
            /// <para>DM - Degrees Decimal Minutes</para>
            /// <para>DM - Degrees Decimal Minutes—The coordinate location is recorded in degrees decimal minutes format.</para>
            /// <para>DM - 十进制度后分 - 坐标位置以十进制度分格式记录。</para>
            /// </summary>
            [Description("DM - Degrees Decimal Minutes")]
            [GPEnumValue("STD_COORD_FMT_DM")]
            _STD_COORD_FMT_DM,

            /// <summary>
            /// <para>DMS - Degrees Minutes Seconds</para>
            /// <para>DMS - Degrees Minutes Seconds—The coordinate location is recorded in degrees minutes seconds format.</para>
            /// <para>DMS - 度分秒 - 坐标位置以度分秒格式记录。</para>
            /// </summary>
            [Description("DMS - Degrees Minutes Seconds")]
            [GPEnumValue("STD_COORD_FMT_DMS")]
            _STD_COORD_FMT_DMS,

            /// <summary>
            /// <para>UTM - Universal Transverse Mercator</para>
            /// <para>UTM - Universal Transverse Mercator—The coordinate location is recorded in Universal Transverse Mercator format.</para>
            /// <para>UTM - 通用横轴墨卡托 - 坐标位置以通用横轴墨卡托格式记录。</para>
            /// </summary>
            [Description("UTM - Universal Transverse Mercator")]
            [GPEnumValue("STD_COORD_FMT_UTM")]
            _STD_COORD_FMT_UTM,

            /// <summary>
            /// <para>MGRS - Military Grid Reference System</para>
            /// <para>MGRS - Military Grid Reference System—The coordinate location is recorded in Military Grid Reference System format.</para>
            /// <para>MGRS - 军事格网参考系 - 坐标位置以军事格网参考系格式记录。</para>
            /// </summary>
            [Description("MGRS - Military Grid Reference System")]
            [GPEnumValue("STD_COORD_FMT_MGRS")]
            _STD_COORD_FMT_MGRS,

        }

        /// <summary>
        /// <para>Require Word Breaks</para>
        /// <para><xdoc>
        ///   <para>Specifies whether to search for text using word breaks. A word break occurs when words (text) are bounded by whitespace or punctuation characters as in European languages.</para>
        ///   <para>This setting can produce frequent false positives or infrequent false positives depending on the language of the text. For example, when word breaks are not required, the English text Bernard will produce a match against the text San Bernardino, which would likely be considered a false positive. However, when text is written using a language that does not use word breaks, you cannot find words if word breaks are required. For example, with the text I flew to Tokyo in Japanese, 私は東京に飛んで, you would only be able to find the word Tokyo, 東京, when word breaks are not required.</para>
        ///   <bulletList>
        ///     <bullet_item>Checked—The tool will search for words that are bounded by whitespace or punctuation characters. This is the default.</bullet_item><para/>
        ///     <bullet_item>Unchecked—The tool will not search for words that are bounded by whitespace or punctuation characters.</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para><xdoc>
        ///   <para>指定是否使用分词符搜索文本。当单词（文本）以空格或标点符号为边界时，就会发生单词换行符，就像在欧洲语言中一样。</para>
        ///   <para>此设置可能会产生频繁的误报或不频繁的误报，具体取决于文本的语言。例如，当不需要换字符时，英语文本 Bernard 将生成与文本 San Bernardino 的匹配项，这可能会被视为误报。但是，当使用不使用分词符的语言编写文本时，如果需要分词符，则无法找到单词。例如，使用日语文本 I fly to Tokyo， 私は東京に飛んで，您只能在不需要分词符时找到单词 Tokyo， 東京。</para>
        ///   <bulletList>
        ///     <bullet_item>选中 - 该工具将搜索以空格或标点符号为边界的单词。这是默认设置。</bullet_item><para/>
        ///     <bullet_item>未选中 - 该工具不会搜索以空格或标点符号为边界的单词。</bullet_item><para/>
        ///   </bulletList>
        /// </xdoc></para>
        /// <para></para>
        /// </summary>
        [DisplayName("Require Word Breaks")]
        [Description("")]
        [Option(OptionTypeEnum.optional)]
        public _req_word_breaks_value _req_word_breaks { get; set; } = _req_word_breaks_value._true;

        public enum _req_word_breaks_value
        {
            /// <summary>
            /// <para>REQ_WORD_BREAKS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("REQ_WORD_BREAKS")]
            [GPEnumValue("true")]
            _true,

            /// <summary>
            /// <para>DONT_REQ_WORD_BREAKS</para>
            /// <para></para>
            /// <para></para>
            /// </summary>
            [Description("DONT_REQ_WORD_BREAKS")]
            [GPEnumValue("false")]
            _false,

        }

        public ExtractLocationsDocument SetEnv(object geographicTransformations = null, object outputCoordinateSystem = null, object workspace = null)
        {
            base.SetEnv(geographicTransformations: geographicTransformations, outputCoordinateSystem: outputCoordinateSystem, workspace: workspace);
            return this;
        }

    }

}